package com.gxa.mapper.statistical;

import com.gxa.pojo.entity.tjgl.ChannelPieChart;
import com.gxa.pojo.entity.tjgl.StaffSummary;
import com.gxa.pojo.entity.tjgl.VisitorsTrend;
import com.gxa.pojo.entity.tjgl.util.DateInfo;
import org.apache.ibatis.annotations.Param;

import java.sql.Timestamp;
import java.time.LocalDate;
import java.util.List;

/**
 * @author IKE <hp1041735092@outlook.jp>
 * @date 23/2/2024
 */
public interface VisitorsMapper {
    
    Integer queryTodayNum();

    Integer queryYestNum();

    Integer queryTotalNum();

    Integer queryThisYearNum();

    Integer queryLastYearNum();

    Integer queryThisMonthNum();

    Integer queryLastMonthNum();

    Integer queryThisWeekNum();

    Integer queryLastWeekNum();


    List<StaffSummary>
    queryPaginatedStaffSummaryList(@Param("index") Integer index,
    @Param("pageSize") Integer pageSize, @Param("startTime") Timestamp startTime,
    @Param("endTime") Timestamp endTime, @Param("username") String username);

    Long queryStaffSummaryCount();

    ChannelPieChart queryPieChartReception(DateInfo date);

    List<VisitorsTrend> queryTrendReception(@Param("parsedBeginDate") LocalDate parsedBeginDate,@Param("parsedEndDate") LocalDate parsedEndDate);


    Integer queryLastWeekVisitNum();

    Integer queryThisWeekVisitNum();

    Integer queryLastMonthVisitNum();

    Integer queryThisMonthVisitNum();

    Integer queryLastYearVisitNum();

    Integer queryThisYearVisitNum();

    Integer queryTotalVisitNum();

    Integer queryYestVisitNum();

    Integer queryTodayVisitNum();

    List<VisitorsTrend> queryVisitTrend(@Param("parsedBeginDate") LocalDate parsedBeginDate,@Param("parsedEndDate") LocalDate parsedEndDate);

}
